The NET Framework 2.0 introduced the generic interface System.Collections.Generic.IEnumerable<T>
and it should be preferred over
the older, non generic, interfaces.
This rule raises an issue when a public type implements System.Collections.IEnumerable
.
Noncompliant code example
using System;
using System.Collections;
public class MyData
{
public MyData()
{
}
}
public class MyList : CollectionBase // Noncompliant
{
public void Add(MyData data)
{
InnerList.Add(data);
}
// ...
}
Compliant solution
using System;
using System.Collections.ObjectModel;
public class MyData
{
public MyData()
{
}
}
public class MyList : Collection<MyData>
{
// Implementation...
}